#ifndef log_Manager_h
#define log_Manager_h

#include <utility/String.h>
#include <map>

namespace log4cplus
{
	class Logger;
}

namespace serika
{
	namespace log
	{
		class Manager
		{
		private:
			Manager();
			~Manager();

		public:
			static void Init(const ut::String& config);
			static log4cplus::Logger& GetLogger(const ut::String& name);

		private:
			static Manager& Singleton();

			void _Init(const ut::String& config);
			log4cplus::Logger& _GetLogger(const ut::String& name);
			log4cplus::Logger& _GetRootLogger();

		private:
			typedef std::map<ut::String, log4cplus::Logger> LoggerMap;
			LoggerMap mLoggerMap;
		};
	}
}

#endif
